var Kata;
(function (Kata) {
    var FizzBuzz = (function () {
        function FizzBuzz() {
            this.numberProcessorChain = new Number(new Whizz(new Buzz(new Fizz())));
        }
        FizzBuzz.prototype.getOutput = function (num) {
            var output = this.numberProcessorChain.getText(num);
            return output;
        };
        return FizzBuzz;
    })();
    Kata.FizzBuzz = FizzBuzz;    
    var Fizz = (function () {
        function Fizz() { }
        Fizz.prototype.getText = function (num) {
            if(num % 3 === 0) {
                return 'Fizz';
            }
            return '';
        };
        return Fizz;
    })();    
    var Buzz = (function () {
        function Buzz(numberToText) {
            this.numberToText = numberToText;
        }
        Buzz.prototype.getText = function (num) {
            var output = this.numberToText.getText(num);
            if(num % 5 === 0) {
                output += 'Buzz';
            }
            return output;
        };
        return Buzz;
    })();    
    var Whizz = (function () {
        function Whizz(numberToText) {
            this.numberToText = numberToText;
        }
        Whizz.prototype.getText = function (num) {
            var output = this.numberToText.getText(num);
            if(num % 7 === 0) {
                output += 'Whizz';
            }
            return output;
        };
        return Whizz;
    })();    
    var Number = (function () {
        function Number(numberToText) {
            this.numberToText = numberToText;
        }
        Number.prototype.getText = function (num) {
            var output = this.numberToText.getText(num);
            if(output === '') {
                output = num.toString();
            }
            return output;
        };
        return Number;
    })();    
})(Kata || (Kata = {}));
//@ sourceMappingURL=app.js.map
